package com.postaop.hntl.front.iso8583;

/**
 * 域属性工具
 * @author Karma
 *
 */
public class IsoFieldPropertyUtils {
	
	/**
	 * 设置变长域
	 * @param isoMsgTemplate 模板
	 * @param index 序列
	 * @param len 长度
	 * @param lenDataType 长度类型
	 * @param dataType 数据类型
	 */
	public static void setVarField(IsoMsgTemplate isoMsgTemplate
			,int index,int len,IsoDataType lenDataType,IsoDataType dataType){
		IsoElementProperty length=new IsoElementProperty();
		length.setLength(len);
		length.setDataType(lenDataType);
		IsoElementProperty value=new IsoElementProperty();
		value.setMsgType(IsoMsgType.VAR);
		value.setDataType(dataType);
		IsoFieldProperty field=IsoFieldPropertyUtils.createVarField(length,value);
		isoMsgTemplate.setField(index, field);
	}
	
	/**
	 * 设置定长域
	 * @param isoMsgTemplate 模板
	 * @param index 序号
	 * @param length 长度
	 * @param dataType 数据类型
	 */
	public static void setFixedField(IsoMsgTemplate isoMsgTemplate
			,int index,int length,IsoDataType dataType){
		IsoElementProperty value=new IsoElementProperty();
		value.setLength(length);
		value.setMsgType(IsoMsgType.FIXED);
		value.setDataType(dataType);
		IsoFieldProperty field=IsoFieldPropertyUtils.createFixedField(value);
		isoMsgTemplate.setField(index, field);
	}
	
	/**
	 * 创建定长域
	 * @param valueProperty 属性
	 * @return
	 */
	public static IsoFieldProperty createFixedField(IsoElementProperty valueProperty){
		IsoFieldProperty fieldProperty=new IsoFieldProperty();
		fieldProperty.setField(valueProperty);
		return fieldProperty;
	}
	
	/**
	 * 创建定长域
	 * @param elementProperty 属性
	 * @return
	 */
	public static IsoFieldProperty createVarField(IsoElementProperty lengthProperty
			,IsoElementProperty valueProperty){
		IsoFieldProperty fieldProperty=new IsoFieldProperty();
		fieldProperty.setLength(lengthProperty);
		fieldProperty.setField(valueProperty);
		return fieldProperty;
	}
	
}
